package com.guigu.dao;

import com.github.pagehelper.Page;
import com.guigu.pojo.CheckGroup;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface CheckGroupMapper {
    /**
     * 新增
     * @param checkGroup
     */
    void add(CheckGroup checkGroup);

    /**
     * 绑定该 检查组 的检查项
     * @param map
     */
    void setCheckGroupAndCheckItem(Map<String, Integer> map);

    /**
     * 删除关联表
     *
     * @param id
     */
    void deleteAssociation(Integer id);

    /**
     * 根据分页 工具 进行分页
     * @param queryString
     * @return
     */
    public Page<CheckGroup> selectByCondition(String queryString);

    /**
     * 通过检查组id查询是否被检查项使用了，使用了则无法删除
     *
     * @param id
     * @return
     */
    int findCheckItemCountByCheckGroupId(Integer id);
    /**
     * 通过检查组id查询是否被套餐使用了，使用了则无法删除
     *
     * @param id
     * @return
     */
    int findSetmealCountByCheckGroupId(Integer id);

    /**
     * 根据id回显检查组
     *
     * @param groupId
     * @return
     */
    CheckGroup findById(Integer groupId);

    /**
     * 根据对象进行编辑
     *
     * @param checkGroup
     */
    public void edit(CheckGroup checkGroup);

    /**
     * 根据id 进行删除 逻辑删除
     * @param id
     */
    void deleteById(@Param("id")Integer id);

    int deleteByPrimaryKey(Integer id);

    int insert(CheckGroup record);

    int insertSelective(CheckGroup record);


    CheckGroup selectByPrimaryKey(Integer id);


    int updateByPrimaryKeySelective(CheckGroup record);

    int updateByPrimaryKey(CheckGroup record);

    /**
     * 根据GroupId查询CheckItemIds
     *
     * @param id
     * @return
     */
    List<Integer> findCheckItemIdsByCheckGroupId(Integer id);
}